#ifndef QXGAME_ENEMYMANAGER_H
#define QXGAME_ENEMYMANAGER_H

#include <memory>
#include "Singleton.h"
#include "CharacterId.h"
#include "../object/base/Character.h"

class EnemyManager : public Singleton<EnemyManager> {
    friend class Singleton<EnemyManager>;

public:
    void OnUpdate(double delta);
    void OnRender();
    void AddEnemy(const std::shared_ptr<Character>& enemy);
protected:
    EnemyManager();
    ~EnemyManager() = default;

private:
    void AiAction(const std::shared_ptr<Character>& enemy);
    bool AiCanAttack(const std::shared_ptr<Character>& enemy);
};

#endif //QXGAME_ENEMYMANAGER_H
